const express = require ('express')

// 导入cors跨域#
const cors = require ('cors')
// 导入body-parser
const body = require ('body-parser')
// 导入express-jwt#
const {expressjwt} = require ('express-jwt')
// 导入path
const path = require ('path')

const {port,secret,pass} = require ('./config')


// 导入  路由 总表
const router = require ('./routes')

// 倒入全局中间件
const  {empty,error,info} = require ('./middleware')
// 导入mongodb连接操作
const {connect} = require ('./db')


const  app = express()


// 连接数据库

connect()
// 开启跨域#
app.use(cors())


// 配置静态资源主要就是图片(当前app.js下面同级的public，需要组装目录才能出图片)
app.use('/public',express.static(path.resolve(__dirname, './public/')))

// 解析请求体#
app.use(body({extended:false}))
app.use(body.json())

// 记录访问信息
app.use(info)

// 配置验证token
app.use(expressjwt({
    secret,
    algorithms:['HS256']
}).unless({path:pass}))
//  // token不验证的地址



// 挂在路由总表
app.use(router)

// 全局空路由#
app.use(empty)

// 全局错误中间件
app.use(error)


app.listen(port ,() => {console.log(`启动服务器成功开始监听${port}端口号,我是oa服务器`)})


